package api; // 应用程序网络接口

import com.fasterxml.jackson.databind.ObjectMapper;
import model.Blog;
import model.BlogDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * model.User: DELL
 * Date: 2023-03-23
 * Time: 7:29
 */

// 主页加载全部博客
@WebServlet("/blog")
public class SquareBlogServlet extends HttpServlet {
    // 关于博客数据的 Servlet

    // 约定前后端格式
    // 前端发起 GET/blog/1.1 OK
    // 请求响应 使用 json 格式组织数据. 每个响应中包含一个博客数组, 每个消息是一篇博客
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取所有博客
        BlogDao blogDao = new BlogDao();
        List<Blog> blogs = blogDao.selectAll();
        // 此时获取到得 blogs 是一个 java 对象, 需要转成 json 对象
        ObjectMapper objectMapper = new ObjectMapper();
        String blogsJson = objectMapper.writeValueAsString(blogs);
        // 设置响应格式, 告诉服务器以什么格式返回
        resp.setContentType("application/json; charset = utf8");
        // 通过响应返回
        resp.getWriter().write(blogsJson);
    }
}
